/*
 *
 * www.cutebear.com Inc.
 * Copyright (c) 2017  All Rights Reserved
 */

package com.acooly.module.openapi.client.provider.yipay.enums;

import com.acooly.core.utils.enums.Messageable;
import com.google.common.collect.Maps;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * Created by liubin@prosysoft.com on 2017/9/27.
 */
public enum YipayAreaCodeEnum implements Messageable {

    AREA_CODE_110000("110000","北京市"),
    AREA_CODE_120000("120000","天津市"),
    AREA_CODE_130100("130100","石家庄市"),
    AREA_CODE_130200("130200","唐山市"),
    AREA_CODE_130300("130300","秦皇岛市"),
    AREA_CODE_130400("130400","邯郸市"),
    AREA_CODE_130500("130500","邢台市"),
    AREA_CODE_130600("130600","保定市"),
    AREA_CODE_130700("130700","张家口市"),
    AREA_CODE_130800("130800","承德市"),
    AREA_CODE_130900("130900","沧州市"),
    AREA_CODE_131000("131000","廊坊市"),
    AREA_CODE_131100("131100","衡水市"),
    AREA_CODE_140100("140100","太原市"),
    AREA_CODE_140200("140200","大同市"),
    AREA_CODE_140300("140300","阳泉市"),
    AREA_CODE_140400("140400","长治市"),
    AREA_CODE_140500("140500","晋城市"),
    AREA_CODE_140600("140600","朔州市"),
    AREA_CODE_140700("140700","晋中市 "),
    AREA_CODE_140800("140800","运城市"),
    AREA_CODE_140900("140900","忻州市"),
    AREA_CODE_141000("141000","临汾市"),
    AREA_CODE_141100("141100","吕梁市"),
    AREA_CODE_150100("150100","呼和浩特市"),
    AREA_CODE_150200("150200","包头市"),
    AREA_CODE_150300("150300","乌海市"),
    AREA_CODE_150400("150400","赤峰市"),
    AREA_CODE_150500("150500","通辽市"),
    AREA_CODE_150600("150600","鄂尔多斯市"),
    AREA_CODE_150700("150700","呼伦贝尔市"),
    AREA_CODE_150800("150800","巴彦淖尔市"),
    AREA_CODE_150900("150900","乌兰察布市"),
    AREA_CODE_152200("152200","兴安盟"),
    AREA_CODE_152500("152500","锡林郭勒盟"),
    AREA_CODE_152900("152900","阿拉善盟"),
    AREA_CODE_210100("210100","沈阳市"),
    AREA_CODE_210200("210200","大连市"),
    AREA_CODE_210300("210300","鞍山市"),
    AREA_CODE_210400("210400","抚顺市"),
    AREA_CODE_210500("210500","本溪市"),
    AREA_CODE_210600("210600","丹东市"),
    AREA_CODE_210700("210700","锦州市"),
    AREA_CODE_210800("210800","营口市"),
    AREA_CODE_210900("210900","阜新市"),
    AREA_CODE_211000("211000","辽阳市"),
    AREA_CODE_211100("211100","盘锦市"),
    AREA_CODE_211200("211200","铁岭市"),
    AREA_CODE_211300("211300","朝阳市"),
    AREA_CODE_211400("211400","葫芦岛市"),
    AREA_CODE_220100("220100","长春市"),
    AREA_CODE_220200("220200","吉林市"),
    AREA_CODE_220300("220300","四平市"),
    AREA_CODE_220400("220400","辽源市"),
    AREA_CODE_220500("220500","通化市"),
    AREA_CODE_220600("220600","白山市"),
    AREA_CODE_220700("220700","松原市"),
    AREA_CODE_220800("220800","白城市"),
    AREA_CODE_222400("222400","延边朝鲜族自治州"),
    AREA_CODE_230100("230100","哈尔滨市"),
    AREA_CODE_230200("230200","齐齐哈尔市"),
    AREA_CODE_230300("230300","鸡西市"),
    AREA_CODE_230400("230400","鹤岗市"),
    AREA_CODE_230500("230500","双鸭山市"),
    AREA_CODE_230600("230600","大庆市"),
    AREA_CODE_230700("230700","伊春市"),
    AREA_CODE_230800("230800","佳木斯市"),
    AREA_CODE_230900("230900","七台河市"),
    AREA_CODE_231000("231000","牡丹江市"),
    AREA_CODE_231100("231100","黑河市"),
    AREA_CODE_231200("231200","绥化市"),
    AREA_CODE_232700("232700","大兴安岭地区"),
    AREA_CODE_310000("310000","上海市"),
    AREA_CODE_320100("320100","南京市"),
    AREA_CODE_320200("320200","无锡市"),
    AREA_CODE_320300("320300","徐州市"),
    AREA_CODE_320400("320400","常州市"),
    AREA_CODE_320500("320500","苏州市"),
    AREA_CODE_320600("320600","南通市"),
    AREA_CODE_320700("320700","连云港市"),
    AREA_CODE_320800("320800","淮安市"),
    AREA_CODE_320900("320900","盐城市"),
    AREA_CODE_321000("321000","扬州市"),
    AREA_CODE_321100("321100","镇江市"),
    AREA_CODE_321200("321200","泰州市"),
    AREA_CODE_321300("321300","宿迁市"),
    AREA_CODE_330100("330100","杭州市"),
    AREA_CODE_330200("330200","宁波市"),
    AREA_CODE_330300("330300","温州市"),
    AREA_CODE_330400("330400","嘉兴市"),
    AREA_CODE_330500("330500","湖州市"),
    AREA_CODE_330600("330600","绍兴市"),
    AREA_CODE_330700("330700","金华市"),
    AREA_CODE_330800("330800","衢州市"),
    AREA_CODE_330900("330900","舟山市"),
    AREA_CODE_331000("331000","台州市"),
    AREA_CODE_331100("331100","丽水市"),
    AREA_CODE_340100("340100","合肥市"),
    AREA_CODE_340200("340200","芜湖市"),
    AREA_CODE_340300("340300","蚌埠市"),
    AREA_CODE_340400("340400","淮南市"),
    AREA_CODE_340500("340500","马鞍山市"),
    AREA_CODE_340600("340600","淮北市"),
    AREA_CODE_340700("340700","铜陵市"),
    AREA_CODE_340800("340800","安庆市"),
    AREA_CODE_341000("341000","黄山市"),
    AREA_CODE_341100("341100","滁州市"),
    AREA_CODE_341200("341200","阜阳市"),
    AREA_CODE_341300("341300","宿州市"),
    AREA_CODE_341500("341500","六安市"),
    AREA_CODE_341600("341600","亳州市"),
    AREA_CODE_341700("341700","池州市"),
    AREA_CODE_341800("341800","宣州市"),
    AREA_CODE_350100("350100","福州市"),
    AREA_CODE_350200("350200","厦门市"),
    AREA_CODE_350300("350300","莆田市"),
    AREA_CODE_350400("350400","三明市"),
    AREA_CODE_350500("350500","泉州市"),
    AREA_CODE_350600("350600","漳州市"),
    AREA_CODE_350700("350700","南平市"),
    AREA_CODE_350800("350800","龙岩市"),
    AREA_CODE_350900("350900","宁德市"),
    AREA_CODE_360100("360100","南昌市"),
    AREA_CODE_360200("360200","景德镇市"),
    AREA_CODE_360300("360300","萍乡市"),
    AREA_CODE_360400("360400","九江市"),
    AREA_CODE_360500("360500","新余市"),
    AREA_CODE_360600("360600","鹰潭市"),
    AREA_CODE_360700("360700","赣州市"),
    AREA_CODE_360800("360800","吉安市"),
    AREA_CODE_360900("360900","宜春市"),
    AREA_CODE_361000("361000","抚州市"),
    AREA_CODE_361100("361100","上饶市"),
    AREA_CODE_370100("370100","济南市"),
    AREA_CODE_370200("370200","青岛市"),
    AREA_CODE_370300("370300","淄博市"),
    AREA_CODE_370400("370400","枣庄市"),
    AREA_CODE_370500("370500","东营市"),
    AREA_CODE_370600("370600","烟台市"),
    AREA_CODE_370700("370700","潍坊市"),
    AREA_CODE_370800("370800","济宁市"),
    AREA_CODE_370900("370900","泰安市"),
    AREA_CODE_371000("371000","威海市"),
    AREA_CODE_371100("371100","日照市"),
    AREA_CODE_371200("371200","莱芜市"),
    AREA_CODE_371300("371300","临沂市"),
    AREA_CODE_371400("371400","德州市"),
    AREA_CODE_371500("371500","聊城市"),
    AREA_CODE_371600("371600","滨州市"),
    AREA_CODE_371700("371700","菏泽市"),
    AREA_CODE_410100("410100","郑州市"),
    AREA_CODE_410200("410200","开封市"),
    AREA_CODE_410300("410300","洛阳市"),
    AREA_CODE_410400("410400","平顶山市"),
    AREA_CODE_410500("410500","安阳市"),
    AREA_CODE_410600("410600","鹤壁市"),
    AREA_CODE_410700("410700","新乡市"),
    AREA_CODE_410800("410800","焦作市"),
    AREA_CODE_410900("410900","濮阳市"),
    AREA_CODE_411000("411000","许昌市"),
    AREA_CODE_411100("411100","漯河市"),
    AREA_CODE_411200("411200","三门峡市"),
    AREA_CODE_411300("411300","南阳市"),
    AREA_CODE_411400("411400","商丘市"),
    AREA_CODE_411500("411500","信阳市"),
    AREA_CODE_411600("411600","周口市"),
    AREA_CODE_419001("419001","济源市"),
    AREA_CODE_411700("411700","驻马店市"),
    AREA_CODE_420100("420100","武汉市"),
    AREA_CODE_420200("420200","黄石市"),
    AREA_CODE_420300("420300","十堰市"),
    AREA_CODE_420500("420500","宜昌市"),
    AREA_CODE_420600("420600","襄樊市"),
    AREA_CODE_420700("420700","鄂州市"),
    AREA_CODE_420800("420800","荆门市"),
    AREA_CODE_420900("420900","孝感市"),
    AREA_CODE_421000("421000","荆州市"),
    AREA_CODE_421100("421100","黄冈市"),
    AREA_CODE_421200("421200","咸宁市"),
    AREA_CODE_421300("421300","随州市"),
    AREA_CODE_420103("420103","江汉市"),
    AREA_CODE_422800("422800","恩施土家族苗族自治州"),
    AREA_CODE_429004("429004","仙桃市"),
    AREA_CODE_429005("429005","潜江市"),
    AREA_CODE_429006("429006","天门市"),
    AREA_CODE_429021("429021","神农架林区"),
    AREA_CODE_430100("430100","长沙市"),
    AREA_CODE_430200("430200","株洲市"),
    AREA_CODE_430300("430300","湘潭市"),
    AREA_CODE_430400("430400","衡阳市"),
    AREA_CODE_430500("430500","邵阳市"),
    AREA_CODE_430600("430600","岳阳市"),
    AREA_CODE_430700("430700","常德市"),
    AREA_CODE_430800("430800","张家界市"),
    AREA_CODE_430900("430900","益阳市"),
    AREA_CODE_431000("431000","郴州市"),
    AREA_CODE_431100("431100","永州市"),
    AREA_CODE_431200("431200","怀化市"),
    AREA_CODE_431300("431300","娄底市"),
    AREA_CODE_433100("433100","湘西土家族苗族自治州"),
    AREA_CODE_440100("440100","广州市"),
    AREA_CODE_440200("440200","韶关市"),
    AREA_CODE_440300("440300","深圳市"),
    AREA_CODE_440400("440400","珠海市"),
    AREA_CODE_440500("440500","汕头市"),
    AREA_CODE_440600("440600","佛山市"),
    AREA_CODE_440700("440700","江门市"),
    AREA_CODE_440800("440800","湛江市"),
    AREA_CODE_440900("440900","茂名市"),
    AREA_CODE_441200("441200","肇庆市"),
    AREA_CODE_441300("441300","惠州市"),
    AREA_CODE_441400("441400","梅州市"),
    AREA_CODE_441500("441500","汕尾市"),
    AREA_CODE_441600("441600","河源市"),
    AREA_CODE_441700("441700","阳江市"),
    AREA_CODE_441800("441800","清远市"),
    AREA_CODE_441900("441900","东莞市"),
    AREA_CODE_442000("442000","中山市"),
    AREA_CODE_445100("445100","潮州市"),
    AREA_CODE_445200("445200","揭阳市"),
    AREA_CODE_445300("445300","云浮市"),
    AREA_CODE_450100("450100","南宁市"),
    AREA_CODE_450200("450200","柳州市"),
    AREA_CODE_450300("450300","桂林市"),
    AREA_CODE_450400("450400","梧州市"),
    AREA_CODE_450500("450500","北海市"),
    AREA_CODE_450600("450600","防城港市"),
    AREA_CODE_450700("450700","钦州市"),
    AREA_CODE_450800("450800","贵港市"),
    AREA_CODE_450900("450900","玉林市"),
    AREA_CODE_451000("451000","百色市"),
    AREA_CODE_451100("451100","贺州市"),
    AREA_CODE_451200("451200","河池市"),
    AREA_CODE_451300("451300","来宾市"),
    AREA_CODE_451400("451400","崇左市"),
    AREA_CODE_469003("469003","儋州市"),
    AREA_CODE_469007("469007","东方市"),
    AREA_CODE_469024("469024","临高县 "),
    AREA_CODE_469026("469026","昌江黎族自治县 "),
    AREA_CODE_469025("469025","白沙黎族自治县 "),
    AREA_CODE_460100("460100","海口市"),
    AREA_CODE_469002("469002","琼海市"),
    AREA_CODE_469005("469005","文昌市 "),
    AREA_CODE_469006("469006","万宁市"),
    AREA_CODE_469021("469021","定安县"),
    AREA_CODE_469023("469023","澄迈县"),
    AREA_CODE_469022("469022","屯昌县"),
    AREA_CODE_469030("469030","琼中黎族苗族自治县 "),
    AREA_CODE_460200("460200","三亚市"),
    AREA_CODE_469027("469027","乐东黎族自治县"),
    AREA_CODE_469028("469028","陵水黎族自治县"),
    AREA_CODE_469029("469029","保亭黎族苗族自治县"),
    AREA_CODE_469001("469001","五指山市"),
    AREA_CODE_500000("500000","重庆市"),
    AREA_CODE_510100("510100","成都市"),
    AREA_CODE_510300("510300","自贡市"),
    AREA_CODE_510400("510400","攀枝花市"),
    AREA_CODE_510500("510500","泸州市"),
    AREA_CODE_510600("510600","德阳市"),
    AREA_CODE_510700("510700","绵阳市"),
    AREA_CODE_510800("510800","广元市"),
    AREA_CODE_510900("510900","遂宁市"),
    AREA_CODE_511000("511000","内江市"),
    AREA_CODE_511100("511100","乐山市"),
    AREA_CODE_511300("511300","南充市"),
    AREA_CODE_511400("511400","眉山市"),
    AREA_CODE_511500("511500","宜宾市"),
    AREA_CODE_511600("511600","广安市"),
    AREA_CODE_511700("511700","达州市"),
    AREA_CODE_511800("511800","雅安市"),
    AREA_CODE_511900("511900","巴中市"),
    AREA_CODE_512000("512000","资阳市"),
    AREA_CODE_513200("513200","阿坝藏族羌族自治州"),
    AREA_CODE_513300("513300","甘孜藏族自治州"),
    AREA_CODE_513400("513400","凉山彝族自治州"),
    AREA_CODE_520100("520100","贵阳市"),
    AREA_CODE_520200("520200","六盘水市"),
    AREA_CODE_520300("520300","遵义市"),
    AREA_CODE_520400("520400","安顺市"),
    AREA_CODE_520600("520600","铜仁市"),
    AREA_CODE_522300("522300","黔西南布依族苗族自治州"),
    AREA_CODE_520500("520500","毕节市"),
    AREA_CODE_522600("522600","黔东南苗族侗族自治州"),
    AREA_CODE_522700("522700","黔南布依族苗族自治州"),
    AREA_CODE_530100("530100","昆明市"),
    AREA_CODE_530300("530300","曲靖市"),
    AREA_CODE_530400("530400","玉溪市"),
    AREA_CODE_530500("530500","保山市"),
    AREA_CODE_530600("530600","昭通市"),
    AREA_CODE_530700("530700","丽江市"),
    AREA_CODE_530800("530800","普洱市"),
    AREA_CODE_530900("530900","临沧市"),
    AREA_CODE_532300("532300","楚雄彝族自治州"),
    AREA_CODE_532500("532500","红河哈尼族彝族自治州"),
    AREA_CODE_532600("532600","文山壮族苗族自治州"),
    AREA_CODE_532800("532800","西双版纳傣族自治州"),
    AREA_CODE_532900("532900","大理白族自治州"),
    AREA_CODE_533100("533100","德宏傣族景颇族自治州"),
    AREA_CODE_533300("533300","怒江僳僳族自治州"),
    AREA_CODE_533400("533400","迪庆藏族普米族自治县"),
    AREA_CODE_540100("540100","拉萨市"),
    AREA_CODE_540300("540300","昌都地区"),
    AREA_CODE_542200("542200","山南地区"),
    AREA_CODE_540200("540200","日喀则地区"),
    AREA_CODE_542400("542400","那曲地区"),
    AREA_CODE_542500("542500","阿里地区"),
    AREA_CODE_540400("540400","林芝地区"),
    AREA_CODE_610100("610100","西安市"),
    AREA_CODE_610200("610200","铜川市"),
    AREA_CODE_610300("610300","宝鸡市"),
    AREA_CODE_610400("610400","咸阳市"),
    AREA_CODE_610500("610500","渭南市"),
    AREA_CODE_610600("610600","延安市"),
    AREA_CODE_610700("610700","汉中市"),
    AREA_CODE_610800("610800","榆林市"),
    AREA_CODE_610900("610900","安康市"),
    AREA_CODE_611000("611000","商洛市"),
    AREA_CODE_620100("620100","兰州市"),
    AREA_CODE_620200("620200","嘉峪关市"),
    AREA_CODE_620300("620300","金昌市"),
    AREA_CODE_620400("620400","白银市"),
    AREA_CODE_620500("620500","天水市"),
    AREA_CODE_620600("620600","武威市"),
    AREA_CODE_620700("620700","张掖市"),
    AREA_CODE_620800("620800","平凉市"),
    AREA_CODE_620900("620900","酒泉市"),
    AREA_CODE_621000("621000","庆阳市"),
    AREA_CODE_621100("621100","定西市"),
    AREA_CODE_621200("621200","陇南市"),
    AREA_CODE_622900("622900","临夏回族自治州"),
    AREA_CODE_623000("623000","甘南藏族自治州"),
    AREA_CODE_630100("630100","西宁市"),
    AREA_CODE_630200("630200","海东地区"),
    AREA_CODE_632200("632200","海北藏族自治州"),
    AREA_CODE_632300("632300","黄南藏族自治州"),
    AREA_CODE_632500("632500","海南藏族自治州"),
    AREA_CODE_632600("632600","果洛藏族自治州"),
    AREA_CODE_632700("632700","玉树藏族自治州"),
    AREA_CODE_632800("632800","海西蒙古族藏族自治州"),
    AREA_CODE_632801("632801","格尔木市"),
    AREA_CODE_640100("640100","银川市"),
    AREA_CODE_640200("640200","石嘴山市"),
    AREA_CODE_640300("640300","吴忠市"),
    AREA_CODE_640400("640400","固原市"),
    AREA_CODE_640500("640500","中卫市"),
    AREA_CODE_650100("650100","乌鲁木齐市"),
    AREA_CODE_650200("650200","克拉玛依市"),
    AREA_CODE_650400("650400","吐鲁番地区"),
    AREA_CODE_652200("652200","哈密地区"),
    AREA_CODE_652300("652300","昌吉回族自治州"),
    AREA_CODE_652700("652700","博尔塔拉蒙古自治州"),
    AREA_CODE_652800("652800","巴音郭楞蒙古自治州"),
    AREA_CODE_652900("652900","阿克苏地区"),
    AREA_CODE_653000("653000","克孜勒苏柯尔克孜自治州"),
    AREA_CODE_653100("653100","喀什地区"),
    AREA_CODE_653200("653200","和田地区"),
    AREA_CODE_654000("654000","伊犁哈萨克自治州"),
    AREA_CODE_654200("654200","塔城市"),
    AREA_CODE_654300("654300","阿勒泰地区"),
    AREA_CODE_654003("654003","奎屯市"),
    AREA_CODE_659001("659001","石河子市"),;

    private final String code;
    private final String message;

    private YipayAreaCodeEnum(String code, String message) {
        this.code = code;
        this.message = message;
    }

    public String getCode() {
        return code;
    }

    public String getMessage() {
        return message;
    }

    @Override
    public String code() {
        return code;
    }

    @Override
    public String message() {
        return message;
    }

    public static Map<String, String> mapping() {
        Map<String, String> map = Maps.newLinkedHashMap();
        for (YipayAreaCodeEnum type : values()) {
            map.put(type.getCode(), type.getMessage());
        }
        return map;
    }

    /**
     * 通过枚举值码查找枚举值。
     *
     * @param code 查找枚举值的枚举值码。
     * @return 枚举值码对应的枚举值。
     * @throws IllegalArgumentException 如果 code 没有对应的 Status 。
     */
    public static YipayAreaCodeEnum find(String code) {
        for (YipayAreaCodeEnum status : values()) {
            if (status.getCode().equals(code)) {
                return status;
            }
        }
        throw new IllegalArgumentException("FudianAuditStatusEnum not legal:" + code);
    }

    /**
     * 获取全部枚举值。
     *
     * @return 全部枚举值。
     */
    public static List<YipayAreaCodeEnum> getAll() {
        List<YipayAreaCodeEnum> list = new ArrayList<YipayAreaCodeEnum>();
        for (YipayAreaCodeEnum status : values()) {
            list.add(status);
        }
        return list;
    }

    /**
     * 获取全部枚举值码。
     *
     * @return 全部枚举值码。
     */
    public static List<String> getAllCode() {
        List<String> list = new ArrayList<String>();
        for (YipayAreaCodeEnum status : values()) {
            list.add(status.code());
        }
        return list;
    }


}
